home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HyperLib 1997 Winter - Disc 1
/
HYPERLIB-1997-Winter-CD1.ISO.7z
/
HYPERLIB-1997-Winter-CD1.ISO
/
オンラインウェア
/
PRG
/
MacPerl 506 appl folder.sit
/
MacPerl 506 appl folder
/
Mac_Perl_506r1m_appl
/
lib
/
Shell.pm
< prev
next >
Wrap
Text File
|
1995-03-20
|
819b
|
50 lines
die "Shell.pm not (yet) implemented on the Mac";
package Shell;
sub import {
my $self = shift;
my ($callpack, $callfile, $callline) = caller;
my @EXPORT;
if (@_) {
@EXPORT = @_;
}
else {
@EXPORT = 'AUTOLOAD';
}
foreach $sym (@EXPORT) {
*{"${callpack}::$sym"} = ¥&{"Shell::$sym"};
}
};
AUTOLOAD {
my $cmd = $AUTOLOAD;
$cmd =~ s/^.*:://;
eval qq {
sub $AUTOLOAD {
if (¥@_ < 2) {
`$cmd ¥@_`;
}
else {
open(SUBPROC, "-|")
or exec '$cmd', ¥@_
or die "Can't exec $cmd: ¥$!¥n";
if (wantarray) {
my ¥@ret = <SUBPROC>;
close SUBPROC; # XXX Oughta use a destructor.
¥@ret;
}
else {
local(¥$/) = undef;
my ¥$ret = <SUBPROC>;
close SUBPROC;
¥$ret;
}
}
}
};
goto &$AUTOLOAD;
}
1;